

<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>pyanaconda.ui package &mdash; Anaconda 25.14 documentation</title>
  

  
  

  

  
  
    

  

  
  
    <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  

  

  
    <link rel="top" title="Anaconda 25.14 documentation" href="index.html"/>
        <link rel="up" title="pyanaconda package" href="pyanaconda.html"/>
        <link rel="next" title="pyanaconda.ui.categories package" href="pyanaconda.ui.categories.html"/>
        <link rel="prev" title="pyanaconda.packaging package" href="pyanaconda.packaging.html"/> 

  
  <script src="_static/js/modernizr.min.js"></script>

</head>

<body class="wy-body-for-nav" role="document">

  <div class="wy-grid-for-nav">

    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search">
          

          
            <a href="index.html" class="icon icon-home"> Anaconda
          

          
          </a>

          
            
            
              <div class="version">
                25.14
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
                <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction to Anaconda</a></li>
<li class="toctree-l1"><a class="reference internal" href="release.html">Building a Release</a></li>
<li class="toctree-l1"><a class="reference internal" href="boot-options.html">Anaconda Boot Options</a></li>
<li class="toctree-l1"><a class="reference internal" href="kickstart.html">Anaconda Kickstart Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="commit-log.html">Rules for commit messages</a></li>
<li class="toctree-l1"><a class="reference internal" href="driverdisc.html">Brief description of DriverDisc version 3</a></li>
<li class="toctree-l1"><a class="reference internal" href="iscsi.html">iSCSI and Anaconda</a></li>
<li class="toctree-l1"><a class="reference internal" href="multipath.html">Multipath and Anaconda</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="modules.html">pyanaconda</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="pyanaconda.html">pyanaconda package</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="pyanaconda.html#subpackages">Subpackages</a><ul class="current">
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.installclasses.html">pyanaconda.installclasses package</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.isys.html">pyanaconda.isys package</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.packaging.html">pyanaconda.packaging package</a></li>
<li class="toctree-l4 current"><a class="current reference internal" href="">pyanaconda.ui package</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#submodules">Submodules</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.addons">pyanaconda.addons module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.anaconda">pyanaconda.anaconda module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.anaconda_argparse">pyanaconda.anaconda_argparse module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.anaconda_log">pyanaconda.anaconda_log module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.bootloader">pyanaconda.bootloader module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.constants">pyanaconda.constants module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.constants_text">pyanaconda.constants_text module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.desktop">pyanaconda.desktop module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.errors">pyanaconda.errors module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.exception">pyanaconda.exception module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.flags">pyanaconda.flags module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.geoloc">pyanaconda.geoloc module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.i18n">pyanaconda.i18n module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.ihelp">pyanaconda.ihelp module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.image">pyanaconda.image module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.install">pyanaconda.install module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.installclass">pyanaconda.installclass module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.iutil">pyanaconda.iutil module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.kexec">pyanaconda.kexec module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.keyboard">pyanaconda.keyboard module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.kickstart">pyanaconda.kickstart module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.localization">pyanaconda.localization module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.network">pyanaconda.network module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.nm">pyanaconda.nm module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.ntp">pyanaconda.ntp module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.product">pyanaconda.product module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.progress">pyanaconda.progress module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.pwpolicy">pyanaconda.pwpolicy module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.queuefactory">pyanaconda.queuefactory module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.regexes">pyanaconda.regexes module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.rescue">pyanaconda.rescue module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.safe_dbus">pyanaconda.safe_dbus module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.screensaver">pyanaconda.screensaver module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.simpleconfig">pyanaconda.simpleconfig module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.startup_utils">pyanaconda.startup_utils module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.storage_utils">pyanaconda.storage_utils module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.threads">pyanaconda.threads module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.timezone">pyanaconda.timezone module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.users">pyanaconda.users module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda.vnc">pyanaconda.vnc module</a></li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.html#module-pyanaconda">Module contents</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="testing.html">Testing</a></li>
<li class="toctree-l1"><a class="reference internal" href="tests/modules.html">tests</a></li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
        <a href="index.html">Anaconda</a>
      </nav>


      
      <div class="wy-nav-content">
        <div class="rst-content">
          





<div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="index.html">Docs</a> &raquo;</li>
      
          <li><a href="modules.html">pyanaconda</a> &raquo;</li>
      
          <li><a href="pyanaconda.html">pyanaconda package</a> &raquo;</li>
      
    <li>pyanaconda.ui package</li>
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="_sources/pyanaconda.ui.txt" rel="nofollow"> View page source</a>
          
        
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="pyanaconda-ui-package">
<h1>pyanaconda.ui package<a class="headerlink" href="#pyanaconda-ui-package" title="Permalink to this headline">¶</a></h1>
<div class="section" id="subpackages">
<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="pyanaconda.ui.categories.html">pyanaconda.ui.categories package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.categories.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.categories.html#module-pyanaconda.ui.categories.customization">pyanaconda.ui.categories.customization module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.categories.html#module-pyanaconda.ui.categories.localization">pyanaconda.ui.categories.localization module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.categories.html#module-pyanaconda.ui.categories.software">pyanaconda.ui.categories.software module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.categories.html#module-pyanaconda.ui.categories.system">pyanaconda.ui.categories.system module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.categories.html#module-pyanaconda.ui.categories.user_settings">pyanaconda.ui.categories.user_settings module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.categories.html#module-pyanaconda.ui.categories">Module contents</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="pyanaconda.ui.gui.html">pyanaconda.ui.gui package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.gui.html#subpackages">Subpackages</a><ul>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.ui.gui.hubs.html">pyanaconda.ui.gui.hubs package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.hubs.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.hubs.html#module-pyanaconda.ui.gui.hubs.progress">pyanaconda.ui.gui.hubs.progress module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.hubs.html#module-pyanaconda.ui.gui.hubs.summary">pyanaconda.ui.gui.hubs.summary module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.hubs.html#module-pyanaconda.ui.gui.hubs">Module contents</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html">pyanaconda.ui.gui.spokes package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#subpackages">Subpackages</a><ul>
<li class="toctree-l5"><a class="reference internal" href="pyanaconda.ui.gui.spokes.advstorage.html">pyanaconda.ui.gui.spokes.advstorage package</a><ul>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.advstorage.html#submodules">Submodules</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.advstorage.html#module-pyanaconda.ui.gui.spokes.advstorage.dasd">pyanaconda.ui.gui.spokes.advstorage.dasd module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.advstorage.html#module-pyanaconda.ui.gui.spokes.advstorage.fcoe">pyanaconda.ui.gui.spokes.advstorage.fcoe module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.advstorage.html#module-pyanaconda.ui.gui.spokes.advstorage.iscsi">pyanaconda.ui.gui.spokes.advstorage.iscsi module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.advstorage.html#module-pyanaconda.ui.gui.spokes.advstorage.zfcp">pyanaconda.ui.gui.spokes.advstorage.zfcp module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.advstorage.html#module-pyanaconda.ui.gui.spokes.advstorage">Module contents</a></li>
</ul>
</li>
<li class="toctree-l5"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html">pyanaconda.ui.gui.spokes.lib package</a><ul>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#submodules">Submodules</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.accordion">pyanaconda.ui.gui.spokes.lib.accordion module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.cart">pyanaconda.ui.gui.spokes.lib.cart module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.custom_storage_helpers">pyanaconda.ui.gui.spokes.lib.custom_storage_helpers module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.dasdfmt">pyanaconda.ui.gui.spokes.lib.dasdfmt module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.detailederror">pyanaconda.ui.gui.spokes.lib.detailederror module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.entropy_dialog">pyanaconda.ui.gui.spokes.lib.entropy_dialog module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.lang_locale_handler">pyanaconda.ui.gui.spokes.lib.lang_locale_handler module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.passphrase">pyanaconda.ui.gui.spokes.lib.passphrase module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.refresh">pyanaconda.ui.gui.spokes.lib.refresh module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.resize">pyanaconda.ui.gui.spokes.lib.resize module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib.summary">pyanaconda.ui.gui.spokes.lib.summary module</a></li>
<li class="toctree-l6"><a class="reference internal" href="pyanaconda.ui.gui.spokes.lib.html#module-pyanaconda.ui.gui.spokes.lib">Module contents</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.custom">pyanaconda.ui.gui.spokes.custom module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.datetime_spoke">pyanaconda.ui.gui.spokes.datetime_spoke module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.filter">pyanaconda.ui.gui.spokes.filter module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.keyboard">pyanaconda.ui.gui.spokes.keyboard module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.langsupport">pyanaconda.ui.gui.spokes.langsupport module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#pyanaconda-ui-gui-spokes-network-module">pyanaconda.ui.gui.spokes.network module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.password">pyanaconda.ui.gui.spokes.password module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.software">pyanaconda.ui.gui.spokes.software module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.source">pyanaconda.ui.gui.spokes.source module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.storage">pyanaconda.ui.gui.spokes.storage module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.user">pyanaconda.ui.gui.spokes.user module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes.welcome">pyanaconda.ui.gui.spokes.welcome module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.gui.spokes.html#module-pyanaconda.ui.gui.spokes">Module contents</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.gui.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.gui.html#module-pyanaconda.ui.gui.helpers">pyanaconda.ui.gui.helpers module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.gui.html#module-pyanaconda.ui.gui.utils">pyanaconda.ui.gui.utils module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.gui.html#module-pyanaconda.ui.gui.xkl_wrapper">pyanaconda.ui.gui.xkl_wrapper module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.gui.html#module-pyanaconda.ui.gui">Module contents</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="pyanaconda.ui.lib.html">pyanaconda.ui.lib package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.lib.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.lib.html#module-pyanaconda.ui.lib.disks">pyanaconda.ui.lib.disks module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.lib.html#module-pyanaconda.ui.lib.entropy">pyanaconda.ui.lib.entropy module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.lib.html#module-pyanaconda.ui.lib.space">pyanaconda.ui.lib.space module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.lib.html#module-pyanaconda.ui.lib">Module contents</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="pyanaconda.ui.tui.html">pyanaconda.ui.tui package</a><ul>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.tui.html#subpackages">Subpackages</a><ul>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.ui.tui.hubs.html">pyanaconda.ui.tui.hubs package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.hubs.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.hubs.html#module-pyanaconda.ui.tui.hubs.summary">pyanaconda.ui.tui.hubs.summary module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.hubs.html#module-pyanaconda.ui.tui.hubs">Module contents</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.ui.tui.simpleline.html">pyanaconda.ui.tui.simpleline package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.simpleline.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.simpleline.html#module-pyanaconda.ui.tui.simpleline.base">pyanaconda.ui.tui.simpleline.base module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.simpleline.html#module-pyanaconda.ui.tui.simpleline.widgets">pyanaconda.ui.tui.simpleline.widgets module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.simpleline.html#module-pyanaconda.ui.tui.simpleline">Module contents</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html">pyanaconda.ui.tui.spokes package</a><ul>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#submodules">Submodules</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.askvnc">pyanaconda.ui.tui.spokes.askvnc module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.langsupport">pyanaconda.ui.tui.spokes.langsupport module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.network">pyanaconda.ui.tui.spokes.network module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.password">pyanaconda.ui.tui.spokes.password module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.progress">pyanaconda.ui.tui.spokes.progress module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.shell_spoke">pyanaconda.ui.tui.spokes.shell_spoke module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.software">pyanaconda.ui.tui.spokes.software module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.source">pyanaconda.ui.tui.spokes.source module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.storage">pyanaconda.ui.tui.spokes.storage module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.time_spoke">pyanaconda.ui.tui.spokes.time_spoke module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.user">pyanaconda.ui.tui.spokes.user module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes.warnings_spoke">pyanaconda.ui.tui.spokes.warnings_spoke module</a></li>
<li class="toctree-l4"><a class="reference internal" href="pyanaconda.ui.tui.spokes.html#module-pyanaconda.ui.tui.spokes">Module contents</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.tui.html#submodules">Submodules</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.tui.html#module-pyanaconda.ui.tui.tuiobject">pyanaconda.ui.tui.tuiobject module</a></li>
<li class="toctree-l2"><a class="reference internal" href="pyanaconda.ui.tui.html#module-pyanaconda.ui.tui">Module contents</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div class="section" id="submodules">
<h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
</div>
<div class="section" id="module-pyanaconda.ui.common">
<span id="pyanaconda-ui-common-module"></span><h2>pyanaconda.ui.common module<a class="headerlink" href="#module-pyanaconda.ui.common" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="pyanaconda.ui.common.FirstbootOnlySpokeMixIn">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.common.</code><code class="descname">FirstbootOnlySpokeMixIn</code><a class="headerlink" href="#pyanaconda.ui.common.FirstbootOnlySpokeMixIn" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>This MixIn class marks Spokes as usable for Firstboot.</p>
<dl class="classmethod">
<dt id="pyanaconda.ui.common.FirstbootOnlySpokeMixIn.should_run">
<em class="property">classmethod </em><code class="descname">should_run</code><span class="sig-paren">(</span><em>environment</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.FirstbootOnlySpokeMixIn.should_run" title="Permalink to this definition">¶</a></dt>
<dd><p>This method is responsible for beginning Spoke initialization
in the firstboot environment (even before __init__).</p>
<p>It should return True if the spoke is to be shown and False
if it should be skipped.</p>
<p>It might be called multiple times, with or without (None)
the data argument.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.common.FirstbootSpokeMixIn">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.common.</code><code class="descname">FirstbootSpokeMixIn</code><a class="headerlink" href="#pyanaconda.ui.common.FirstbootSpokeMixIn" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>This MixIn class marks Spokes as usable for Firstboot
and Anaconda.</p>
<dl class="classmethod">
<dt id="pyanaconda.ui.common.FirstbootSpokeMixIn.should_run">
<em class="property">classmethod </em><code class="descname">should_run</code><span class="sig-paren">(</span><em>environment</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.FirstbootSpokeMixIn.should_run" title="Permalink to this definition">¶</a></dt>
<dd><p>This method is responsible for beginning Spoke initialization
in the firstboot environment (even before __init__).</p>
<p>It should return True if the spoke is to be shown
and False if it should be skipped.</p>
<p>It might be called multiple times, with or without (None)
the data argument.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.common.Hub">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.common.</code><code class="descname">Hub</code><span class="sig-paren">(</span><em>storage</em>, <em>payload</em>, <em>instclass</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Hub" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>A Hub is an overview UI screen.  A Hub consists of one or more grids of
configuration options that the user may choose from.  Each grid is
provided by a SpokeCategory, and each option is provided by a Spoke.
When the user dives down into a Spoke and is finished interacting with
it, they are returned to the Hub.</p>
<p>Some Spokes are required.  The user must interact with all required
Spokes before they are allowed to proceed to the next stage of
installation.</p>
<p>From a layout perspective, a Hub is the entirety of the screen, though
the screen itself can be roughly divided into thirds.  The top third is
some basic navigation information (where you are, what you&#8217;re
installing).  The middle third is the grid of Spokes.  The bottom third
is an action area providing additional buttons (quit, continue) or
progress information (during package installation).</p>
<p>Installation may consist of multiple chained Hubs, or Hubs with
additional standalone screens either before or after them.</p>
<p>Create a new Hub instance.</p>
<p>The arguments this base class accepts defines the API that Hubs
have to work with.  A Hub does not get free reign over everything
in the anaconda class, as that would be a big mess.  Instead, a
Hub may count on the following:</p>
<dl class="docutils">
<dt>data         &#8211; An instance of a pykickstart Handler object.  The</dt>
<dd>Hub uses this to populate its UI with defaults
and to pass results back after it has run. The data
property must be implemented by classes inheriting
from Hub.</dd>
<dt>storage      &#8211; An instance of storage.Storage.  This is useful for</dt>
<dd>determining what storage devices are present and how
they are configured.</dd>
<dt>payload      &#8211; An instance of a packaging.Payload subclass.  This</dt>
<dd>is useful for displaying and selecting packages to
install, and in carrying out the actual installation.</dd>
<dt>instclass    &#8211; An instance of a BaseInstallClass subclass.  This</dt>
<dd>is useful for determining distribution-specific
installation information like default package
selections and default partitioning.</dd>
</dl>
<dl class="attribute">
<dt id="pyanaconda.ui.common.Hub.data">
<code class="descname">data</code><a class="headerlink" href="#pyanaconda.ui.common.Hub.data" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.Hub.entry_logger">
<code class="descname">entry_logger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Hub.entry_logger" title="Permalink to this definition">¶</a></dt>
<dd><p>Log immediately before this hub is about to be displayed on the
screen.  Subclasses may override this method if they want to log
more specific information, but an overridden method should finish
by calling this method so the entry will be logged.</p>
<p>Note that due to how the GUI flows, hubs are only entered once -
when they are initially displayed.  Going to a spoke from a hub
and then coming back to the hub does not count as exiting and
entering.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.Hub.exit_logger">
<code class="descname">exit_logger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Hub.exit_logger" title="Permalink to this definition">¶</a></dt>
<dd><p>Log when a user leaves the hub.  Subclasses may override this
method if they want to log more specific information, but an
overridden method should finish by calling this method so the
exit will be logged.</p>
<p>Note that due to how the GUI flows, hubs are not exited when the
user selects a spoke from the hub.  They are only exited when the
continue or quit button is clicked on the hub.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.Hub.set_path">
<code class="descname">set_path</code><span class="sig-paren">(</span><em>path_id</em>, <em>paths</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Hub.set_path" title="Permalink to this definition">¶</a></dt>
<dd><p>Update the paths attribute with list of tuples in the form (module
name format string, directory name)</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Hub.storage">
<code class="descname">storage</code><a class="headerlink" href="#pyanaconda.ui.common.Hub.storage" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.common.NormalSpoke">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.common.</code><code class="descname">NormalSpoke</code><span class="sig-paren">(</span><em>storage</em>, <em>payload</em>, <em>instclass</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.NormalSpoke" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference internal" href="#pyanaconda.ui.common.Spoke" title="pyanaconda.ui.common.Spoke"><code class="xref py py-class docutils literal"><span class="pre">pyanaconda.ui.common.Spoke</span></code></a></p>
<p>A NormalSpoke is a Spoke subclass that is displayed when the user
selects something on a Hub.  This is what most Spokes in anaconda will
be based on.</p>
<p>From a layout perspective, a NormalSpoke takes up the entire screen
therefore hiding the Hub and its action area.  The NormalSpoke also
provides some basic navigation information (where you are, what you&#8217;re
installing, how to get back to the Hub) at the top of the screen.</p>
<p>Create a NormalSpoke instance.</p>
<dl class="attribute">
<dt id="pyanaconda.ui.common.NormalSpoke.indirect">
<code class="descname">indirect</code><a class="headerlink" href="#pyanaconda.ui.common.NormalSpoke.indirect" title="Permalink to this definition">¶</a></dt>
<dd><p>If this property returns True, then this spoke is considered indirect.
An indirect spoke is one that can only be reached through another spoke
instead of directly through the hub.  One example of this is the
custom partitioning spoke, which may only be accessed through the
install destination spoke.</p>
<p>Indirect spokes do not need to provide a completed or status property.</p>
<p>For most spokes, overriding this property is unnecessary.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.NormalSpoke.ready">
<code class="descname">ready</code><a class="headerlink" href="#pyanaconda.ui.common.NormalSpoke.ready" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns True if the Spoke has all the information required to be
displayed.  Almost all spokes should keep the default value here.
Only override this method if the Spoke requires some potentially
long-lived process (like storage probing) before it&#8217;s ready.</p>
<p>A Spoke may be marked as ready or not by calling send_ready or
send_not_ready from pyanaconda.ui.communication with the
target Spoke&#8217;s class name.</p>
<p>While a Spoke is not ready, a progress message may be shown to
give the user some feedback.  See the status property for details.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.common.Spoke">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.common.</code><code class="descname">Spoke</code><span class="sig-paren">(</span><em>storage</em>, <em>payload</em>, <em>instclass</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Spoke" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>A Spoke is a single configuration screen.  There are several different
places where a Spoke can be displayed, each of which will have its own
unique class.  A Spoke is typically used when an element in the Hub is
selected but can also be displayed before a Hub or between multiple
Hubs.</p>
<p>What amount of the UI layout a Spoke provides depends upon where it is
to be shown.  Regardless, the UI of a Spoke should be given by an
interface description file like glade as often as possible, though this
is not a strict requirement.</p>
<p>Class attributes:</p>
<dl class="docutils">
<dt>category   &#8211; Under which SpokeCategory shall this Spoke be displayed</dt>
<dd>in the Hub?  This is a reference to a Hub subclass (not an
object, but the class itself).  If no category is given,
this Spoke will not be displayed.  Note that category is
not required for any Spokes appearing before or after a
Hub.</dd>
<dt>icon       &#8211; The name of the icon to be displayed in the SpokeSelector</dt>
<dd>widget corresponding to this Spoke instance.  If no icon
is given, the default from SpokeSelector will be used.</dd>
<dt>title      &#8211; The title to be displayed in the SpokeSelector widget</dt>
<dd>corresponding to this Spoke instance.  If no title is
given, the default from SpokeSelector will be used.</dd>
</dl>
<p>Create a new Spoke instance.</p>
<p>The arguments this base class accepts defines the API that spokes
have to work with.  A Spoke does not get free reign over everything
in the anaconda class, as that would be a big mess.  Instead, a
Spoke may count on the following:</p>
<dl class="docutils">
<dt>data         &#8211; An instance of a pykickstart Handler object.  The</dt>
<dd>Spoke uses this to populate its UI with defaults
and to pass results back after it has run. The data
property must be implemented by classes inherting
from Spoke.</dd>
<dt>storage      &#8211; An instance of storage.Storage.  This is useful for</dt>
<dd>determining what storage devices are present and how
they are configured.</dd>
<dt>payload      &#8211; An instance of a packaging.Payload subclass.  This</dt>
<dd>is useful for displaying and selecting packages to
install, and in carrying out the actual installation.</dd>
<dt>instclass    &#8211; An instance of a BaseInstallClass subclass.  This</dt>
<dd>is useful for determining distribution-specific
installation information like default package
selections and default partitioning.</dd>
</dl>
<dl class="method">
<dt id="pyanaconda.ui.common.Spoke.apply">
<code class="descname">apply</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Spoke.apply" title="Permalink to this definition">¶</a></dt>
<dd><p>Apply the selections made on this Spoke to the object&#8217;s preset
data object.  This method must be provided by every subclass.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.category">
<code class="descname">category</code><em class="property"> = None</em><a class="headerlink" href="#pyanaconda.ui.common.Spoke.category" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.changed">
<code class="descname">changed</code><a class="headerlink" href="#pyanaconda.ui.common.Spoke.changed" title="Permalink to this definition">¶</a></dt>
<dd><p>Have the values on the spoke changed since the last time it was
run?  If not, the apply and execute methods will be skipped.  This
is to avoid the spoke doing potentially long-lived and destructive
actions that are completely unnecessary.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.completed">
<code class="descname">completed</code><a class="headerlink" href="#pyanaconda.ui.common.Spoke.completed" title="Permalink to this definition">¶</a></dt>
<dd><p>Has this spoke been visited and completed?  If not and the spoke is
mandatory, a special warning icon will be shown on the Hub beside the
spoke, and a highlighted message will be shown at the bottom of the
Hub.  Installation will not be allowed to proceed until all mandatory
spokes are complete.</p>
<p>WARNING: This can be called before the spoke is finished initializing
if the spoke starts a thread. It should make sure it doesn&#8217;t access
things until they are completely setup.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.configured">
<code class="descname">configured</code><a class="headerlink" href="#pyanaconda.ui.common.Spoke.configured" title="Permalink to this definition">¶</a></dt>
<dd><p>This method returns a list of textual ids that should
be written into the after-install customization status
file for the firstboot and GIE to know that the spoke was
configured and what value groups were provided.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.data">
<code class="descname">data</code><a class="headerlink" href="#pyanaconda.ui.common.Spoke.data" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.Spoke.entry_logger">
<code class="descname">entry_logger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Spoke.entry_logger" title="Permalink to this definition">¶</a></dt>
<dd><p>Log immediately before this spoke is about to be displayed on the
screen.  Subclasses may override this method if they want to log
more specific information, but an overridden method should finish
by calling this method so the entry will be logged.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.Spoke.execute">
<code class="descname">execute</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Spoke.execute" title="Permalink to this definition">¶</a></dt>
<dd><p>Cause the data object to take effect on the target system.  This will
usually be as simple as calling one or more of the execute methods on
the data object.  This method does not need to be provided by all
subclasses.</p>
<p>This method will be called in two different places:  (1) Immediately
after initialize on kickstart installs.  (2) Immediately after apply
in all cases.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.Spoke.exit_logger">
<code class="descname">exit_logger</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Spoke.exit_logger" title="Permalink to this definition">¶</a></dt>
<dd><p>Log when a user leaves the spoke.  Subclasses may override this
method if they want to log more specific information, but an
overridden method should finish by calling this method so the
exit will be logged.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.Spoke.finished">
<code class="descname">finished</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Spoke.finished" title="Permalink to this definition">¶</a></dt>
<dd><p>Called when exiting the Summary Hub</p>
<p>This can be used to cleanup the spoke before continuing the
installation. This method is optional.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.icon">
<code class="descname">icon</code><em class="property"> = None</em><a class="headerlink" href="#pyanaconda.ui.common.Spoke.icon" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.mandatory">
<code class="descname">mandatory</code><a class="headerlink" href="#pyanaconda.ui.common.Spoke.mandatory" title="Permalink to this definition">¶</a></dt>
<dd><p>Mark this spoke as mandatory. Installation will not be allowed
to proceed until all mandatory spokes are complete.</p>
<p>Spokes are mandatory unless marked as not being so.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.sensitive">
<code class="descname">sensitive</code><a class="headerlink" href="#pyanaconda.ui.common.Spoke.sensitive" title="Permalink to this definition">¶</a></dt>
<dd><p>May the user click on this spoke&#8217;s selector and be taken to the spoke?
This is different from the showable property.  A spoke that is not
sensitive will still be shown on the hub, but the user may not enter it.
This is also different from the ready property.  A spoke that is not
ready may not be entered, but the spoke may become ready in the future.
A spoke that is not sensitive will likely not become so.</p>
<p>Most spokes will not want to override this method.</p>
</dd></dl>

<dl class="classmethod">
<dt id="pyanaconda.ui.common.Spoke.should_run">
<em class="property">classmethod </em><code class="descname">should_run</code><span class="sig-paren">(</span><em>environment</em>, <em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.Spoke.should_run" title="Permalink to this definition">¶</a></dt>
<dd><p>This method is responsible for beginning Spoke initialization.</p>
<p>It should return True if the spoke is to be shown while in
&lt;environment&gt; and False if it should be skipped.</p>
<p>It might be called multiple times, with or without (None)
the data argument.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.status">
<code class="descname">status</code><a class="headerlink" href="#pyanaconda.ui.common.Spoke.status" title="Permalink to this definition">¶</a></dt>
<dd><p>Given the current status of whatever this Spoke configures, return
a very brief string.  The purpose of this is to display something
on the Hub under the Spoke&#8217;s title so the user can tell at a glance
how things are configured.</p>
<p>A spoke&#8217;s status line on the Hub can also be overloaded to provide
information about why a Spoke is not yet ready, or if an error has
occurred when setting it up.  This can be done by calling
send_message from pyanaconda.ui.communication with the target
Spoke&#8217;s class name and the message to be displayed.</p>
<p>If the Spoke was not yet ready when send_message was called, the
message will be overwritten with the value of this status property
when the Spoke becomes ready.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.storage">
<code class="descname">storage</code><a class="headerlink" href="#pyanaconda.ui.common.Spoke.storage" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.Spoke.title">
<code class="descname">title</code><em class="property"> = None</em><a class="headerlink" href="#pyanaconda.ui.common.Spoke.title" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.common.StandaloneSpoke">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.common.</code><code class="descname">StandaloneSpoke</code><span class="sig-paren">(</span><em>storage</em>, <em>payload</em>, <em>instclass</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.StandaloneSpoke" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference internal" href="#pyanaconda.ui.common.Spoke" title="pyanaconda.ui.common.Spoke"><code class="xref py py-class docutils literal"><span class="pre">pyanaconda.ui.common.Spoke</span></code></a></p>
<p>A StandaloneSpoke is a Spoke subclass that is displayed apart from any
Hub.  It is suitable to be used as a Welcome screen.</p>
<p>From a layout perspective, a StandaloneSpoke provides a full screen
interface.  However, it also provides navigation information at the top
and bottom of the screen that makes it look like the StandaloneSpoke
fits into some other UI element.</p>
<p>Class attributes:</p>
<dl class="docutils">
<dt>preForHub/postForHub   &#8211; A reference to a Hub subclass this Spoke is</dt>
<dd>either a pre or post action for.  Only one of
these may be set at a time.  Note that all
post actions will be run for one hub before
any pre actions for the next.</dd>
<dt>priority               &#8211; This value is used to sort pre and post</dt>
<dd>actions.  The lower a value, the earlier it
will be run.  So a value of 0 for a post action
ensures it will run immediately after a Hub,
while a value of 0 for a pre actions means
it will run as the first thing.</dd>
</dl>
<p>Create a StandaloneSpoke instance.</p>
<dl class="attribute">
<dt id="pyanaconda.ui.common.StandaloneSpoke.postForHub">
<code class="descname">postForHub</code><em class="property"> = None</em><a class="headerlink" href="#pyanaconda.ui.common.StandaloneSpoke.postForHub" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.StandaloneSpoke.preForHub">
<code class="descname">preForHub</code><em class="property"> = None</em><a class="headerlink" href="#pyanaconda.ui.common.StandaloneSpoke.preForHub" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.StandaloneSpoke.status">
<code class="descname">status</code><a class="headerlink" href="#pyanaconda.ui.common.StandaloneSpoke.status" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.common.UIObject">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.common.</code><code class="descname">UIObject</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.UIObject" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>This is the base class from which all other UI classes are derived.  It
thus contains only attributes and methods that are common to everything
else.  It should not be directly instantiated.</p>
<p>Create a new UIObject instance, including loading its uiFile and
all UI-related objects.</p>
<p>Instance attributes:</p>
<dl class="docutils">
<dt>data     &#8211; An instance of a pykickstart Handler object.  The Hub</dt>
<dd>never directly uses this instance.  Instead, it passes
it down into Spokes when they are created and applied.
The Hub simply stores this instance so it doesn&#8217;t need
to be passed by the user.</dd>
</dl>
<dl class="attribute">
<dt id="pyanaconda.ui.common.UIObject.data">
<code class="descname">data</code><a class="headerlink" href="#pyanaconda.ui.common.UIObject.data" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.UIObject.initialize">
<code class="descname">initialize</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.UIObject.initialize" title="Permalink to this definition">¶</a></dt>
<dd><p>Perform whatever actions are necessary to pre-fill the UI with
values.  This method is called only once, after the object is
created.  The difference between this method and __init__ is that
this method may take a long time (especially for NormalSpokes) and
thus may be run in its own thread.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.UIObject.refresh">
<code class="descname">refresh</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.UIObject.refresh" title="Permalink to this definition">¶</a></dt>
<dd><p>Perform whatever actions are necessary to reset the UI immediately
before it is displayed.  This method is called every time a screen
is shown, which could potentially be several times in the case of a
NormalSpoke.  Thus, it&#8217;s important to not do things like populate
stores (which could result in the store having duplicate entries) or
anything that takes a long time (as that will result in a delay
between the user&#8217;s action and showing the results).</p>
<p>For anything potentially long-lived, use the initialize method.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.common.UIObject.showable">
<code class="descname">showable</code><a class="headerlink" href="#pyanaconda.ui.common.UIObject.showable" title="Permalink to this definition">¶</a></dt>
<dd><p>Should this object even be shown?  This method is useful for checking
some precondition before this screen is shown.  If False is returned,
the screen will be skipped and the object destroyed.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.common.UIObject.teardown">
<code class="descname">teardown</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.UIObject.teardown" title="Permalink to this definition">¶</a></dt>
<dd><p>Perform whatever actions are necessary to clean up after this object
is done.  It&#8217;s not necessary for every subclass to have an instance
of this method.</p>
<p>NOTE:  It is important for this method to not destroy self.window if
you are making a Spoke or Hub subclass.  It is assumed that once
these are instantiated, they live until the program terminates.  This
is required for various status notifications.</p>
</dd></dl>

</dd></dl>

<dl class="function">
<dt id="pyanaconda.ui.common.collect">
<code class="descclassname">pyanaconda.ui.common.</code><code class="descname">collect</code><span class="sig-paren">(</span><em>module_pattern</em>, <em>path</em>, <em>pred</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.collect" title="Permalink to this definition">¶</a></dt>
<dd><p>Traverse the directory (given by path), import all files as a module
module_pattern % filename and find all classes within that match
the given predicate.  This is then returned as a list of classes.</p>
<p>It is suggested you use collect_categories or collect_spokes instead of
this lower-level method.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>module_pattern</strong> (<a class="reference external" href="https://docs.python.org/3/library/string.html#module-string" title="(in Python v3.5)"><em>string</em></a>) &#8211; the full name pattern (pyanaconda.ui.gui.spokes.%s)
we want to assign to imported modules</li>
<li><strong>path</strong> (<a class="reference external" href="https://docs.python.org/3/library/string.html#module-string" title="(in Python v3.5)"><em>string</em></a>) &#8211; the directory we are picking up modules from</li>
<li><strong>pred</strong> (<em>function with one argument returning True or False</em>) &#8211; function which marks classes as good to import</li>
</ul>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="pyanaconda.ui.common.collectCategoriesAndSpokes">
<code class="descclassname">pyanaconda.ui.common.</code><code class="descname">collectCategoriesAndSpokes</code><span class="sig-paren">(</span><em>paths</em>, <em>klass</em>, <em>displaymode</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.collectCategoriesAndSpokes" title="Permalink to this definition">¶</a></dt>
<dd><p>Collects categories and spokes to be displayed on this Hub</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>paths</strong> &#8211; dictionary mapping categories, spokes, and hubs to their
their respective search path(s)</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">dictionary mapping category class to list of spoke classes</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">dictionary[category class] -&gt; [ list of spoke classes ]</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="function">
<dt id="pyanaconda.ui.common.collect_categories">
<code class="descclassname">pyanaconda.ui.common.</code><code class="descname">collect_categories</code><span class="sig-paren">(</span><em>mask_paths</em>, <em>displaymode</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.collect_categories" title="Permalink to this definition">¶</a></dt>
<dd><p>Return a list of all category subclasses. Look for them in modules
imported as module_mask % basename(f) where f is name of all files in path.</p>
</dd></dl>

<dl class="function">
<dt id="pyanaconda.ui.common.collect_spokes">
<code class="descclassname">pyanaconda.ui.common.</code><code class="descname">collect_spokes</code><span class="sig-paren">(</span><em>mask_paths</em>, <em>category</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.common.collect_spokes" title="Permalink to this definition">¶</a></dt>
<dd><p>Return a list of all spoke subclasses that should appear for a given
category. Look for them in files imported as module_path % basename(f)</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>mask_paths</strong> (<em>list of (mask, path)</em>) &#8211; list of mask, path tuples to search for classes</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">list of Spoke classes belonging to category</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body">list of Spoke classes</td>
</tr>
</tbody>
</table>
</dd></dl>

</div>
<div class="section" id="module-pyanaconda.ui.communication">
<span id="pyanaconda-ui-communication-module"></span><h2>pyanaconda.ui.communication module<a class="headerlink" href="#module-pyanaconda.ui.communication" title="Permalink to this headline">¶</a></h2>
</div>
<div class="section" id="module-pyanaconda.ui.helpers">
<span id="pyanaconda-ui-helpers-module"></span><h2>pyanaconda.ui.helpers module<a class="headerlink" href="#module-pyanaconda.ui.helpers" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="pyanaconda.ui.helpers.InputCheck">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.helpers.</code><code class="descname">InputCheck</code><span class="sig-paren">(</span><em>parent</em>, <em>input_obj</em>, <em>run_check</em>, <em>data=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>Handle an input validation check.</p>
<p>This class is used by classes that implement InputCheckHandler to
manage and manipulate input validation check instances.</p>
<p>Create a new input validation check.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple">
<li><strong>parent</strong> (<a class="reference internal" href="#pyanaconda.ui.helpers.InputCheckHandler" title="pyanaconda.ui.helpers.InputCheckHandler"><em>InputCheckHandler</em></a>) &#8211; The InputCheckHandler object to which this
check is being added.</li>
<li><strong>input_obj</strong> (<em>function</em>) &#8211; An object representing the input to check.</li>
<li><strong>run_check</strong> (<em>function</em>) &#8211; A function to call to perform the input check. This
function is called with the InputCheck object as a
parameter.  The return value an object representing
the error state, or CHECK_OK if the check succeeds.</li>
<li><strong>data</strong> &#8211; Optional data associated with the input check</li>
</ul>
</td>
</tr>
</tbody>
</table>
<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheck.CHECK_OK">
<code class="descname">CHECK_OK</code><em class="property"> = None</em><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck.CHECK_OK" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheck.CHECK_SILENT">
<code class="descname">CHECK_SILENT</code><em class="property"> = ''</em><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck.CHECK_SILENT" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheck.check_status">
<code class="descname">check_status</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck.check_status" title="Permalink to this definition">¶</a></dt>
<dd><p>The current status of the check</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheck.data">
<code class="descname">data</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck.data" title="Permalink to this definition">¶</a></dt>
<dd><p>Optional data associated with the input check.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheck.enabled">
<code class="descname">enabled</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck.enabled" title="Permalink to this definition">¶</a></dt>
<dd><p>Whether the check is enabled or not.</p>
<p>Disabling a check indicates that the status will not change if
the input changes. The value of check_status will be the result of
the last time the InputCheck was run when enabled. Disabled checks
will not be included in InputCheckHandler.failed_checks.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheck.input_obj">
<code class="descname">input_obj</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck.input_obj" title="Permalink to this definition">¶</a></dt>
<dd><p>The input to check.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheck.run_check">
<code class="descname">run_check</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck.run_check" title="Permalink to this definition">¶</a></dt>
<dd><p>A function to call to perform the input check.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.InputCheck.update_check_status">
<code class="descname">update_check_status</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheck.update_check_status" title="Permalink to this definition">¶</a></dt>
<dd><p>Run an input validation check.</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.helpers.InputCheckHandler">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.helpers.</code><code class="descname">InputCheckHandler</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>Provide a framework for adding input validation checks to a screen.</p>
<p>This helper class provides a mean of defining and associating input
validation checks with an input screen. Running the checks and acting
upon the results is left up to the subclasses. Classes implementing
InputCheckHandler should ensure that the checks are run at the
appropriate times (e.g., calling InputCheck.update_check_status when
input is changed), and that input for the screen is not accepted if
self.failed_checks is not empty.</p>
<p>See GUIInputCheckHandler and GUISpokeInputCheckHandler for additional
functionality.</p>
<dl class="method">
<dt id="pyanaconda.ui.helpers.InputCheckHandler.add_check">
<code class="descname">add_check</code><span class="sig-paren">(</span><em>input_obj</em>, <em>run_check</em>, <em>data=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler.add_check" title="Permalink to this definition">¶</a></dt>
<dd><p>Add an input validation check to this object.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>input_obj</strong> &#8211; An object representing the input to check.</li>
<li><strong>run_check</strong> (<em>function</em>) &#8211; A function to call to perform the input check. This
function is called with the InputCheck object as a
parameter.  The return value an object representing
the error state, or CHECK_OK if the check succeeds.</li>
<li><strong>data</strong> &#8211; Optional data associated with the input check</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The InputCheck object created.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#pyanaconda.ui.helpers.InputCheck" title="pyanaconda.ui.helpers.InputCheck">InputCheck</a></p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.InputCheckHandler.add_re_check">
<code class="descname">add_re_check</code><span class="sig-paren">(</span><em>input_obj</em>, <em>regex</em>, <em>message</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler.add_re_check" title="Permalink to this definition">¶</a></dt>
<dd><p>Add a check using a regular expression.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple">
<li><strong>input_obj</strong> (<em>function</em>) &#8211; An object representing the input to check.</li>
<li><strong>regex</strong> (<em>re.RegexObject</em>) &#8211; The regular expression to check input against.</li>
<li><strong>message</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.5)"><em>str</em></a>) &#8211; A message to return for failed checks</li>
</ul>
</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">The InputCheck object created.</p>
</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><p class="first last"><a class="reference internal" href="#pyanaconda.ui.helpers.InputCheck" title="pyanaconda.ui.helpers.InputCheck">InputCheck</a></p>
</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheckHandler.checks">
<code class="descname">checks</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler.checks" title="Permalink to this definition">¶</a></dt>
<dd><p>An iterator over all input checks</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheckHandler.failed_checks">
<code class="descname">failed_checks</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler.failed_checks" title="Permalink to this definition">¶</a></dt>
<dd><p>A generator of all failed input checks</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.InputCheckHandler.failed_checks_with_message">
<code class="descname">failed_checks_with_message</code><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler.failed_checks_with_message" title="Permalink to this definition">¶</a></dt>
<dd><p>A generator of all failed input checks with an error message</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.InputCheckHandler.get_input">
<code class="descname">get_input</code><span class="sig-paren">(</span><em>input_obj</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler.get_input" title="Permalink to this definition">¶</a></dt>
<dd><p>Return the input string from an input object.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>input_obj</strong> &#8211; The input object</td>
</tr>
<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">An input string</td>
</tr>
<tr class="field-odd field"><th class="field-name">Return type:</th><td class="field-body"><a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.5)">str</a></td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.InputCheckHandler.remove_check">
<code class="descname">remove_check</code><span class="sig-paren">(</span><em>inputcheck</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler.remove_check" title="Permalink to this definition">¶</a></dt>
<dd><p>Remove an input check.</p>
<p>If the check being removed is not in the OK status, the status will
be set to CHECK_OK and set_status will be called.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>InputCheck</strong> (<em>inputcheck</em>) &#8211; the InputCheck object to remove</td>
</tr>
<tr class="field-even field"><th class="field-name" colspan="2">Raises <a class="reference external" href="https://docs.python.org/3/library/exceptions.html#ValueError" title="(in Python v3.5)">ValueError</a>:</th></tr>
<tr class="field-even field"><td>&nbsp;</td><td class="field-body">if the inputcheck does not exist for this InputCheckHandler</td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.InputCheckHandler.set_status">
<code class="descname">set_status</code><span class="sig-paren">(</span><em>inputcheck</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.InputCheckHandler.set_status" title="Permalink to this definition">¶</a></dt>
<dd><p>Update the status of the window from the input validation results.</p>
<p>This function could, for example, set or clear an error on the window,
or display a message near an input area with invalid data.</p>
<table class="docutils field-list" frame="void" rules="none">
<col class="field-name" />
<col class="field-body" />
<tbody valign="top">
<tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>inputcheck</strong> (<a class="reference internal" href="#pyanaconda.ui.helpers.InputCheck" title="pyanaconda.ui.helpers.InputCheck"><em>InputCheck</em></a>) &#8211; The InputCheck object whose status last changed.</td>
</tr>
</tbody>
</table>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.helpers.</code><code class="descname">SourceSwitchHandler</code><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>A class that can be used as a mixin handling
installation source switching.
It will correctly switch to the new method
and cleanup any previous method set.</p>
<dl class="attribute">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler.data">
<code class="descname">data</code><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler.data" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler.set_source_cdrom">
<code class="descname">set_source_cdrom</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler.set_source_cdrom" title="Permalink to this definition">¶</a></dt>
<dd><p>Switch to cdrom install source</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler.set_source_closest_mirror">
<code class="descname">set_source_closest_mirror</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler.set_source_closest_mirror" title="Permalink to this definition">¶</a></dt>
<dd><p>Switch to the closest mirror install source</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler.set_source_hdd_iso">
<code class="descname">set_source_hdd_iso</code><span class="sig-paren">(</span><em>device</em>, <em>iso_path</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler.set_source_hdd_iso" title="Permalink to this definition">¶</a></dt>
<dd><p>Switch to the HDD ISO install source
:param partition: name of the partition hosting the ISO
:type partition: string
:param iso_path: full path to the source ISO file
:type iso_path: string</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler.set_source_nfs">
<code class="descname">set_source_nfs</code><span class="sig-paren">(</span><em>opts=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler.set_source_nfs" title="Permalink to this definition">¶</a></dt>
<dd><p>Switch to NFS install source</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler.set_source_url">
<code class="descname">set_source_url</code><span class="sig-paren">(</span><em>url=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler.set_source_url" title="Permalink to this definition">¶</a></dt>
<dd><p>Switch to install source specified by URL</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler.storage">
<code class="descname">storage</code><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler.storage" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.SourceSwitchHandler.unset_source">
<code class="descname">unset_source</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.SourceSwitchHandler.unset_source" title="Permalink to this definition">¶</a></dt>
<dd><p>Unset an already selected source method.</p>
<p>Unset the source in kickstart and notify the payload so that it can correctly
release all related resources (unmount iso files, drop caches, etc.).</p>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="pyanaconda.ui.helpers.StorageChecker">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.helpers.</code><code class="descname">StorageChecker</code><span class="sig-paren">(</span><em>min_ram=320</em>, <em>mainSpokeClass='StorageSpoke'</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.StorageChecker" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<dl class="method">
<dt id="pyanaconda.ui.helpers.StorageChecker.checkStorage">
<code class="descname">checkStorage</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.StorageChecker.checkStorage" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.StorageChecker.errors">
<code class="descname">errors</code><em class="property"> = []</em><a class="headerlink" href="#pyanaconda.ui.helpers.StorageChecker.errors" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.StorageChecker.log">
<code class="descname">log</code><em class="property"> = &lt;logging.Logger object&gt;</em><a class="headerlink" href="#pyanaconda.ui.helpers.StorageChecker.log" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.helpers.StorageChecker.run">
<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.helpers.StorageChecker.run" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.StorageChecker.storage">
<code class="descname">storage</code><a class="headerlink" href="#pyanaconda.ui.helpers.StorageChecker.storage" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.helpers.StorageChecker.warnings">
<code class="descname">warnings</code><em class="property"> = []</em><a class="headerlink" href="#pyanaconda.ui.helpers.StorageChecker.warnings" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

</dd></dl>

</div>
<div class="section" id="module-pyanaconda.ui">
<span id="module-contents"></span><h2>Module contents<a class="headerlink" href="#module-pyanaconda.ui" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="pyanaconda.ui.UserInterface">
<em class="property">class </em><code class="descclassname">pyanaconda.ui.</code><code class="descname">UserInterface</code><span class="sig-paren">(</span><em>storage</em>, <em>payload</em>, <em>instclass</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.UserInterface" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/functions.html#object" title="(in Python v3.5)"><code class="xref py py-class docutils literal"><span class="pre">object</span></code></a></p>
<p>This is the base class for all kinds of install UIs.  It primarily
defines what kinds of dialogs and entry widgets every interface must
provide that the rest of anaconda may rely upon.</p>
<p>Create a new UserInterface instance.</p>
<p>The arguments this base class accepts defines the API that interfaces
have to work with.  A UserInterface does not get free reign over
everything in the anaconda class, as that would be a big mess.
Instead, a UserInterface may count on the following:</p>
<dl class="docutils">
<dt>storage      &#8211; An instance of storage.Storage.  This is useful for</dt>
<dd>determining what storage devices are present and how
they are configured.</dd>
<dt>payload      &#8211; An instance of a packaging.Payload subclass.  This</dt>
<dd>is useful for displaying and selecting packages to
install, and in carrying out the actual installation.</dd>
<dt>instclass    &#8211; An instance of a BaseInstallClass subclass.  This</dt>
<dd>is useful for determining distribution-specific
installation information like default package
selections and default partitioning.</dd>
</dl>
<dl class="attribute">
<dt id="pyanaconda.ui.UserInterface.meh_interface">
<code class="descname">meh_interface</code><a class="headerlink" href="#pyanaconda.ui.UserInterface.meh_interface" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns an interface for exception handling (defined by python-meh&#8217;s
AbstractIntf class).</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.UserInterface.paths">
<code class="descname">paths</code><em class="property"> = {}</em><a class="headerlink" href="#pyanaconda.ui.UserInterface.paths" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.UserInterface.run">
<code class="descname">run</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.UserInterface.run" title="Permalink to this definition">¶</a></dt>
<dd><p>Run the interface.  This should do little more than just pass
through to something else&#8217;s run method, but is provided here in
case more is needed.  This method must be provided by all subclasses.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.UserInterface.setup">
<code class="descname">setup</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.UserInterface.setup" title="Permalink to this definition">¶</a></dt>
<dd><p>Construct all the objects required to implement this interface.
This method must be provided by all subclasses.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.UserInterface.showDetailedError">
<code class="descname">showDetailedError</code><span class="sig-paren">(</span><em>message</em>, <em>details</em>, <em>buttons=None</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.UserInterface.showDetailedError" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.UserInterface.showError">
<code class="descname">showError</code><span class="sig-paren">(</span><em>message</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.UserInterface.showError" title="Permalink to this definition">¶</a></dt>
<dd><p>Display an error dialog with the given message. There is no return
value. This method must be implemented by all UserInterface
subclasses.</p>
<p>In the code, this method should be used sparingly and only for
critical errors that anaconda cannot figure out how to recover from.</p>
</dd></dl>

<dl class="method">
<dt id="pyanaconda.ui.UserInterface.showYesNoQuestion">
<code class="descname">showYesNoQuestion</code><span class="sig-paren">(</span><em>message</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.UserInterface.showYesNoQuestion" title="Permalink to this definition">¶</a></dt>
<dd><p>Display a dialog with the given message that presents the user a yes
or no choice.  This method returns True if the yes choice is selected,
and False if the no choice is selected.  From here, anaconda can
figure out what to do next.  This method must be implemented by all
UserInterface subclasses.</p>
<p>In the code, this method should be used sparingly and only for those
times where anaconda cannot make a reasonable decision.  We don&#8217;t
want to overwhelm the user with choices.</p>
</dd></dl>

<dl class="attribute">
<dt id="pyanaconda.ui.UserInterface.tty_num">
<code class="descname">tty_num</code><a class="headerlink" href="#pyanaconda.ui.UserInterface.tty_num" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns the number of tty the UserInterface is running on.</p>
</dd></dl>

<dl class="classmethod">
<dt id="pyanaconda.ui.UserInterface.update_paths">
<em class="property">classmethod </em><code class="descname">update_paths</code><span class="sig-paren">(</span><em>pathdict</em><span class="sig-paren">)</span><a class="headerlink" href="#pyanaconda.ui.UserInterface.update_paths" title="Permalink to this definition">¶</a></dt>
<dd><p>Receives pathdict and appends it&#8217;s contents to the current
class defined search path dictionary.</p>
</dd></dl>

</dd></dl>

</div>
</div>


           </div>
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="pyanaconda.ui.categories.html" class="btn btn-neutral float-right" title="pyanaconda.ui.categories package" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="pyanaconda.packaging.html" class="btn btn-neutral" title="pyanaconda.packaging package" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        &copy; Copyright 2015, Red Hat, Inc..

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  


  

    <script type="text/javascript">
        var DOCUMENTATION_OPTIONS = {
            URL_ROOT:'./',
            VERSION:'25.14',
            COLLAPSE_INDEX:false,
            FILE_SUFFIX:'.html',
            HAS_SOURCE:  true
        };
    </script>
      <script type="text/javascript" src="_static/jquery.js"></script>
      <script type="text/javascript" src="_static/underscore.js"></script>
      <script type="text/javascript" src="_static/doctools.js"></script>

  

  
  
    <script type="text/javascript" src="_static/js/theme.js"></script>
  

  
  
  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.StickyNav.enable();
      });
  </script>
   

</body>
</html>